#   先做一个打印单行的函数，再用while，for循环调用
def Print_one(number):  #输出单行  for方法
    for i in range( 1 , number + 1):
        print("{}*{}={:<2}  ".format( i , number , i * number) , end = "")
    print("")
def Print_one_res(number):  #输出单行  for方法 反向
    res = ""
    for i in range( 9 , 0 , -1):
        if number <i:
            res = res + " "*8
        else:
            res = res + "{}*{}={:<2}  ".format( i , number , i * number)
    return res

print("="*88)   #输出分割线
for i in range(1,10):   #第一次正向打印 for方法
    Print_one(i)
print("="*88)   #输出分割线
for i in range(9,0,-1):     #第一次反向打印  for方法
    Print_one(i)
print("="*88)   #输出分割线
for i in range(1,10):   #第一次反向打印  for方法
    print(Print_one_res(i))
print("="*88)   #输出分割线
for i in range(9,0,-1):   #第一次反向打印  for方法
    print(Print_one_res(i))
print("="*88)   #输出分割线




def Print_two(number):  #输出正向单行 while方法
    i = 1
    while number >=  i :
        print("{}*{}={:<2}  ".format( i , number , i * number) , end = "")
        i  = i + 1
    print("")
def Print_two_res(number):  #输出反向单行 while方法
    i = 9
    while number < i :
        print(" " * 8,end = "")
        i = i - 1
    while i > 0 :
        print("{}*{}={:<2}  ".format( i , number , i * number) , end = "")
        i  = i - 1
    print("")

for i in range(1,10):   #第二次正向打印
    Print_two(i)
print("="*88)   #输出分割线
for i in range(9,0,-1):     #第二次正向打印
    Print_two(i)
print("=" * 88)  # 输出分割线
for i in range(1,10):   #第二次反向打印
    Print_two_res(i)
print("="*88)   #输出分割线
for i in range(9,0,-1):     #第二次反向打印
    Print_two_res(i)
print("="*88)   #输出分割线
